package com.example.scenictourback.service;

import com.example.scenictourback.dto.TicketDTO;
import com.example.scenictourback.entity.Ticket;

import java.util.List;

public interface TicketService {
    
    /**
     * 获取所有门票列表
     * @return 门票DTO列表
     */
    List<TicketDTO> listAllTickets();
    
    /**
     * 根据景区ID获取门票列表
     * @param scenicAreaId 景区ID
     * @return 门票DTO列表
     */
    List<TicketDTO> listTicketsByScenicAreaId(Integer scenicAreaId);
    
    /**
     * 根据ID获取门票详情
     * @param id 门票ID
     * @return 门票DTO
     */
    TicketDTO getTicketById(Integer id);
    
    /**
     * 新增门票
     * @param ticket 门票信息
     * @return 新增后的门票信息
     */
    TicketDTO addTicket(Ticket ticket);
    
    /**
     * 更新门票信息
     * @param id 门票ID
     * @param ticket 更新的门票信息
     * @return 更新后的门票信息
     */
    TicketDTO updateTicket(Integer id, Ticket ticket);
    
    /**
     * 仅更新门票数量
     * @param id 门票ID
     * @param totalQuantity 总数量
     * @param availableQuantity 可用数量
     * @return 更新后的门票信息
     */
    TicketDTO updateTicketQuantity(Integer id, Integer totalQuantity, Integer availableQuantity);
    
    /**
     * 删除门票
     * @param id 门票ID
     */
    void deleteTicket(Integer id);
} 